
<script type="text/javascript">
			function SomenteNumero(e){
			    var tecla=(window.event)?event.keyCode:e.which;   
			    if((tecla>47 && tecla<58)) return true;
			    else{
			    	if (tecla==8 || tecla==0) return true;
				else  return false;
			    }
			}
  	

function MascaraCustom(str, mascara) {
	if (mascaraInteiro(str) == false) {
		event.returnValue = false;
	}
	return formataCampo(str, mascara, event);
}

//retorna o keyCode de acordo com browser utilizado
function getKeyCode(event) {
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which
			: event.charCode;
	return keyCode;
}

// valida numero inteiro com mascara
function mascaraInteiro() {
	var keyCode = getKeyCode(event);
	if (keyCode < 48 || keyCode > 57) {
		event.returnValue = false;
		return false;
	}
	return true;
}

// formata de forma generica os campos
function formataCampo(campo, Mascara, evento) {
	var boleanoMascara;

	var Digitato = null;

	if (evento != null) {
		Digitato = getKeyCode(evento);
	}

	exp = /\-|\.|\/|\(|\)| /g;
	campoSoNumeros = campo.value.toString().replace(exp, "");

	var posicaoCampo = 0;
	var NovoValorCampo = "";
	var TamanhoMascara = campoSoNumeros.length;

	if (Digitato != 8) { // backspace

		for (i = 0; i <= TamanhoMascara; i++) {
			boleanoMascara = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".") || (Mascara.charAt(i) == "/"));
			boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == "(") || (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " "));
			if (boleanoMascara) {
				NovoValorCampo += Mascara.charAt(i);
				TamanhoMascara++;
			} else {
				NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
				posicaoCampo++;
			}
		}
		campo.value = NovoValorCampo;
		return true;
	} else {
		return true;
	}
}

function textPick(campo, tecla) {

	if (validaDigito(campo, tecla)) {

		// se precionou uma tecla que ? um digito (tecla.which != 0) formata.
		if (tecla.which != 0) {
			formataData(campo, tecla);
		}
		return true;
	} else {
		return false;
	}
}

function formataData(campo, tecla) {

	if (tecla.charCode != 0) {
		var tammax = 8;
		if (typeof (tecla) == "undefined") {
			var tecla = window.event;
		}

		var codigo = (tecla.which ? tecla.which : tecla.keyCode ? tecla.keyCode : tecla.charCode);

		var vr = campo.value;
		vr = vr.replace("/", "");
		vr = vr.replace("/", "");

		var tam = vr.length;

		if (tam < tammax) {
			tam = vr.length + 1;
		}

		if (codigo == 8) {
			tam = tam - 1;
		}

		var separadorAtual = "/";

		// se o usu?rio digitou "/", nao poe, senao fica duplicado
		if (codigo == 47) {
			separadorAtual = "";
		}

		tam = tam - 1;
		if (tam == 2) {
			vr = vr.substr(0, tam - 0) + separadorAtual + vr.substr(tam - 0, 2);
		}
		if (tam == 3) {
			vr = vr.substr(0, tam - 1) + separadorAtual + vr.substr(tam - 1, 2);
		}
		if (tam == 4) {
			vr = vr.substr(0, tam - 2) + "/" + vr.substr(tam - 2, 2) + separadorAtual + vr.substr(tam - 0, 5);
		}
		if (tam == 5) {
			vr = vr.substr(0, tam - 3) + "/" + vr.substr(tam - 3, 2) + separadorAtual + vr.substr(tam - 1, 6);
		}
		if (tam == 6) {
			vr = vr.substr(0, tam - 4) + "/" + vr.substr(tam - 4, 2) + separadorAtual + vr.substr(tam - 2, 7);
		}
		if (tam == 7) {
			vr = vr.substr(0, tam - 5) + "/" + vr.substr(tam - 5, 2) + separadorAtual + vr.substr(tam - 3, 8);
		}

		campo.value = vr;
	}
}

function validaDigito(campo, tecla) {

	// se tiver com ctrl ou alt precionado passa.
	// se precionou uma tecla que nao ? um digito (tecla.which == 0) passa.
	if (tecla.ctrlKey || tecla.altKey || tecla.which == 0) {
		return true;
	}

	var codigo = (tecla.which ? tecla.which : tecla.keyCode ? tecla.keyCode : tecla.charCode);

	// se tiver precionado enter (codigo == 13) passa.
	// se for tap (codigo == 8) passa.
	// se a tecla precionada fot "/" (codigo == 47) passa.
	if (codigo == 13 || codigo == 8 || codigo == 47) {
		return true;
	}

	// se for um numero (codigo < 58 && codigo > 47) passa.
	// se o tamando estiver dentro dos limites (campo.value.length < 10) passa.
	if (codigo < 58 && codigo > 47 && campo.value.length < 10) {
		return true;
	}

	return false;
}

documentall = document.all;

function formatamoney(c) {
	var t = this;
	if (c == undefined)
		c = 2;
	var p, d = (t = t.split("."))[1].substr(0, c);
	for (p = (t = t[0]).length; (p -= 3) >= 1;) {
		t = t.substr(0, p) + "." + t.substr(p);
	}
	return t + "," + d + Array(c + 1 - d.length).join(0);
}

String.prototype.formatCurrency = formatamoney;

function demaskvalue(valor, currency) {

	// Se currency ? false, retorna o valor sem apenas com os n?meros. Se ?
	// true, os dois ?ltimos caracteres s?o considerados as
	// casas decimais
	var val2 = '';
	var strCheck = '0123456789';
	var len = valor.length;
	if (len == 0) {
		return 0.00;
	}

	if (currency == true) {
		// Elimina os zeros ? esquerda
		// a vari?vel <i> passa a ser a localiza??o do primeiro caractere ap?s
		// os zeros e val2 cont?m os caracteres (descontando os zeros ? esquerda)

		for ( var i = 0; i < len; i++)
			if ((valor.charAt(i) != '0') && (valor.charAt(i) != ','))
				break;

		for (; i < len; i++) {
			if (strCheck.indexOf(valor.charAt(i)) != -1)
				val2 += valor.charAt(i);
		}

		if (val2.length == 0)
			return "0.00";
		if (val2.length == 1)
			return "0.0" + val2;
		if (val2.length == 2)
			return "0." + val2;

		var parte1 = val2.substring(0, val2.length - 2);
		var parte2 = val2.substring(val2.length - 2);
		var returnvalue = parte1 + "." + parte2;
		return returnvalue;

	} else {
		// currency ? false: retornamos os valores COM os zeros ? esquerda,
		// sem considerar os ?ltimos 2 algarismos como casas decimais

		val3 = "";
		for ( var k = 0; k < len; k++) {
			if (strCheck.indexOf(valor.charAt(k)) != -1)
				val3 += valor.charAt(k);
		}
		return val3;
	}
}

function decimalMask(obj, event, maxLength) {
	if(obj.readOnly==true){
		return false;
	}
	var negativo = obj.value.indexOf('-') != -1;
	
	
	var whichCode = getKeyCode(event); 
	
	// Deixa passar Backspace e Delete
	if (((obj.value.length >= maxLength) && (event != null)) && (whichCode != 8 || whichCode != 46)) {
		return true;
	}
	
	if(whichCode == undefined){
		whichCode = event.keyCode;
	}
	// Executa a formataï¿½ï¿½o apï¿½s o backspace nos navegadores !document.all

	if (whichCode == 8 && !documentall) {

		// Previne a aï¿½ï¿½o padrï¿½o nos navegadores

		if (event.preventDefault) { // standart browsers
			event.preventDefault();
		} else { // internet explorer
			event.returnValue = false;
		}
		var valor = obj.value;
		var x = valor.substring(0, valor.length - 1);
		obj.value = demaskvalue(x, true).formatCurrency();
		return false;
	}

	if (whichCode == 45 && !negativo) { // '-'
		obj.value = '-' + obj.value;
		return false;
	}
	
	if (whichCode == 43 && negativo) { // '+'
		obj.value = obj.value.substring(1, obj.value.length);
		return false;
	}

	
	// Executa o Formata Reais e faz o format currency novamente apï¿½s o backspace

	FormataReais(obj, '.', ',', event);
} // end reais

function backspace(obj, event) {
	if(obj.readOnly==true){
		return false;
	}

	// Essa fun??o basicamente altera o backspace nos input com m?scara reais
	// para os navegadores IE e opera.
	// O IE n?o detecta o keycode 8 no evento keypress, por isso, tratamos no keydown.
	// Como o opera suporta o document.all, tratamos dele na mesma parte do c?digo.

	var whichCode = (window.Event) ? event.which : event.keyCode;
	if (whichCode == 8 && documentall) {
		var valor = obj.value;
		var x = valor.substring(0, valor.length - 1);
		var y = demaskvalue(x, true).formatCurrency();

		obj.value = ""; // necess?rio para o opera
		obj.value += y;

		if (event.preventDefault) { // standart browsers
			event.preventDefault();
		} else { // internet explorer
			event.returnValue = false;
		}
		return false;

	}// end if
}// end backspace

function FormataReais(fld, milSep, decSep, e) {
	var sep = 0;
	var key = '';
	var i = j = 0;
	var len = len2 = 0;
	var strCheck = '0123456789';
	var aux = aux2 = '';
	var whichCode = (window.Event) ? e.which : e.keyCode;
	if(whichCode == undefined){
		whichCode = event.keyCode;
	}
	// if (whichCode == 8 ) return true;
	// backspace - estamos tratando disso em outra fun??o no keydown
	if (whichCode == 0)
		return true;
	if (whichCode == 9)
		return true; // tecla tab
	if (whichCode == 13)
		return true; // tecla enter
	if (whichCode == 16)
		return true; // shift internet explorer
	if (whichCode == 17)
		return true; // control no internet explorer
	if (whichCode == 27)
		return true; // tecla esc
	if (whichCode == 34)
		return true; // tecla end
	if (whichCode == 35)
		return true;// tecla end
	if (whichCode == 36)
		return true; // tecla home
	// O trecho abaixo previne a a??o padr?o nos navegadores. N?o estamos
	// inserindo o caractere normalmente, mas via script

	if (e.preventDefault) { // standart browsers
		e.preventDefault();
	} else { // internet explorer
		e.returnValue = false;
	}

	var key = String.fromCharCode(whichCode); // Valor para o c?digo da Chave
	if (strCheck.indexOf(key) == -1)
		return false; // Chave inv?lida

	// Concatenamos ao value o keycode de key, se esse for um n?mero

	fld.value += key;

	var len = fld.value.length;
	var bodeaux = demaskvalue(fld.value, true).formatCurrency();
	fld.value = bodeaux;

	// Essa parte da fun??o t?o somente move o cursor para o final no opera.
	// Atualmente n?o existe como mov?-lo no konqueror.

	if (fld.createTextRange) {
		var range = fld.createTextRange();
		range.collapse(false);
		range.select();
	} else if (fld.setSelectionRange) {
		fld.focus();
		var length = fld.value.length;
		fld.setSelectionRange(length, length);
	}
	return false;

}
function showContent(id) {

	var div = document.getElementById(id);

	// todas as tags <a>
	var as = document.getElementsByTagName("a");

	// Altera class='' da tag <li> para class='on'
	for ( var i = 0; i < as.length; i++) {
		var el = as[i];
		if (el.getAttribute("href") == "#" + div.getAttribute("id")) {
			el.parentNode.className = "on";
		}
	}

	// Mostra elemento div
	div.style.display = "block";
}

function hiddenContent() {

	// if(getNavegador()=="IE"){
	//
	// }

	// if(getNavegador()=="FF"){

	// todas as tags <li>
	var lis = document.getElementsByTagName("li");

	// Altera class='on' da tag <li> para class=''
	for ( var i = 0; i < lis.length; i++) {

		var el = lis[i];

		if (el.className == "on") {

			el.className = "";

			// Esconde elemento div atual.
			var href = el.firstChild.getAttribute("href");
			// Ignora o sequilha (#) antes do id que ? utilizado no href.
			document.getElementById(href.substring(1, href.length)).style.display = "none";
		}
	}
	// }
}

function getNavegador() {

	if (navigator.appName == "Microsoft Internet Explorer") {
		alert("IE");
		return "IE";
	}

	if (navigator.appName == "Netscape") {
		alert("FF");
		return "FF";
	}

	return "";
}

// Formata com ponto valores acima de 1000,00 -> 1000,00 para 1.000,00
function converteFloat(num) {
	cents = Math.floor((num * 100 + 0.5) % 100);
	num = Math.floor((num * 100 + 0.5) / 100).toString();
	if (cents < 10) {
		cents = "0" + cents;
	}
	for ( var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++) {
		num = num.substring(0, num.length - (4 * i + 3)) + '.' + num.substring(num.length - (4 * i + 3));
	}
	return num + ',' + cents;
}

// Converte um campo decimal de '.' para ',' e arredonda em 2 casas decimais.
function converteDecimal(decimal) {
	var negative = false;
	decimal = ("" + Math.round(decimal * 100) / 100).replace('.', ',');
	if(decimal.indexOf('-')!=-1){
		negative = true;
		decimal = decimal.replace('-','');
	}
	var strFim = decimal.split(",");
	if (strFim.length == 2) {
		if (strFim[1].length == 0)
			decimal = decimal + '00';
		if (strFim[1].length == 1)
			decimal = decimal + '0';
	} else {
		decimal = decimal + ',' + '00';
	}
	
	if (decimal.length > 6) {
		decimal = decimal.replace(",", ".");
		decimal = converteFloat(decimal);
	}
	if(negative){
		decimal='-'+decimal;
	}
	return decimal;
}

		</script>

<input type="text" name="data" maxlength="18"
	onkeypress="return textPick(this, event)"/>

